﻿//
// Copyright (c) 2024 BPer
//
#ifndef INCLUDE_BPERPUSH_BPERPUSHFACTORY_H_
#define INCLUDE_BPERPUSH_BPERPUSHFACTORY_H_
#include <bperpush/BPerPushHandle.h>
#include <bperutil/sys/BPerSysMessageHandle.h>
#include <bperpush/BPerSendVideoI.h>
class BPerPushFactory {
public:
	BPerPushFactory();
	virtual ~BPerPushFactory();
	BPerPushHandle* createPushHandle(bool hasAudio,bool initVideo,int pvideotype,BPerVideoInfo *screenvideo, BPerVideoInfo *outvideo,BPerContext* pcontext,BPerSysMessageI* pmessage);
        BPerSysMessageHandle* createPushMessageHandle(bool hasAudio,bool initVideo,int pvideotype,BPerVideoInfo *screenvideo, BPerVideoInfo *outvideo,BPerContext* pcontext,BPerSysMessageI* pmessage,BPerSysMessageHandleI* pmessagehandle);
	BPerVideoBuffer* getPreVideoBuffer(BPerSysMessageHandle* pmessageHandle);
	BPerSendVideoI* getSendVideo(BPerSysMessageHandle* pmessageHandle);
};

#endif /* INCLUDE_BPERPUSH_BPERPUSHFACTORY_H_ */
